/**
* @project admin-go-api
* @name sysDept
* @descriptions 部门结构体
* @author 寒锋
* @date 2023-12-18 14:17:29
 */

package entity

import "admin-go-api/common/util"

// SysDept 部门结构体
type SysDept struct {
	DeptId     uint       `gorm:"column:dept_id;autoIncrement;primaryKey;comment:'部门id';NOT NULL" json:"dept_id"`          // 部门id
	ParentId   uint       `gorm:"column:parent_id;NOT NULL;default:0;comment:'父级id'" json:"parent_id"`                     // 父级id
	DeptType   uint       `gorm:"column:dept_type;NOT NULL;default:1;comment:'部门类型（1->公司, 2->中心，3->部门）'" json:"dept_type"` // 部门类型
	DeptName   string     `gorm:"column:dept_name;varchar(50);NOT NULL;default:'';comment:'部门名称'" json:"dept_name"`        // 部门名称
	DeptStatus uint       `gorm:"column:dept_status;NOT NULL;default:1;comment:'部门状态（1->正常 2->停用）'" json:"dept_status"`    // 部门状态
	CreateTime util.HTime `gorm:"column:create_time;comment:'创建时间';NOT NULL" json:"create_time"`                           // 创建时间
	Children   []SysDept  `gorm:"-" json:"children"`                                                                       // 子集
}

func (SysDept) TableName() string {
	return "sys_dept"
}

// SysDeptIdDto id参数
type SysDeptIdDto struct {
	DeptId uint `json:"dept_id"`
}

// SysDeptVo 部门名称对象
type SysDeptVo struct {
	DeptId   uint   `json:"dept_id"`   // 部门id
	ParentId uint   `json:"parent_id"` // 父级id
	DeptName string `json:"dept_name"` // 部门名称
}
